// cloudfunctions/bindBankCard/index.js
const cloud = require('wx-server-sdk')
cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV })
const db = cloud.database()
const _ = db.command

// 云函数入口函数
exports.main = async (event, context) => {
  try {
    const { userId, bankName, cardNumber, cardHolder } = event
    
    if (!userId) {
      return { success: false, message: '用户ID不能为空' }
    }
    
    // 检查参数
    if (!bankName || !cardNumber || !cardHolder) {
      return { success: false, message: '请填写完整的银行卡信息' }
    }
    
    // 检查银行卡是否已被绑定
    const cardExists = await db.collection('user_bank_cards')
      .where({
        userId: userId,
        cardNumber: cardNumber
      })
      .count()
    
    if (cardExists.total > 0) {
      return { success: false, message: '该银行卡已被绑定' }
    }
    
    // 获取用户当前默认银行卡数量
    const defaultCards = await db.collection('user_bank_cards')
      .where({
        userId: userId,
        isDefault: true
      })
      .count()
    
    // 插入新银行卡记录（如果是第一张卡，设为默认）
    await db.collection('user_bank_cards').add({
      data: {
        userId: userId,
        bankName: bankName,
        cardNumber: cardNumber,
        cardHolder: cardHolder,
        // idNumber: idNumber,
        // phone: phone,
        isDefault: defaultCards.total === 0,  // 如果没有默认卡，则设为默认
        createTime: db.serverDate(),
        updateTime: db.serverDate()
      }
    })
    
    return { success: true, message: '银行卡绑定成功' }
    
  } catch (error) {
    console.error('绑定银行卡失败:', error)
    return { success: false, message: '绑定银行卡失败' }
  }
}